The present invention relates generally to functional testing of memories, and in particular to a method of and system for fast functional testing of memories in microprocessor-based units using a memory-based emulative tester.
Emulative testers, so called because they emulate the behavior of microprocessor-kernel-related devices, are popular for functional testing and fault isolation in microprocessor-based boards or systems. Typically, the emulative tester is connected to a unit under test (UUT) at convenient locations, such as the microprocessor and memory sockets, and effectively takes control of the UUT as though it were part of the UUT's microprocessor kernel. An example of such an emulative tester is described in U.S. Pat. No. 4,868,822 issued to Marshall H. Scott et al., and assigned to John Fluke Mfg. Co., Inc.
U.S. Pat. No. 4,868,822 discloses an emulative tester that is plugged into vacated read-only memory (ROM) sockets on the UUT to allow the UUT's microprocessor to execute instructions contained in emulation memory within the tester. The removed ROMs, which contain the boot-up instructions for the UUT microprocessor, may be plugged into a ROM module associated with the tester so that a user may instruct the UUT microprocessor to access information from either emulation memory or the UUT's own boot ROMs. The emulative tester also includes a number of leads that connect to the UUT microprocessor for developing sync pulses and providing reset signals from the tester to the UUT microprocessor.
In the prior-art memory-based emulative testers, reading information from the UUT boot ROMs was carried out on a bus-cycle-by-bus-cycle basis. That is, the boot ROM was turned on for one specific bus cycle of interest, such as a "read" cycle, during which the UUT microprocessor would attempt to read or access data from a selected address location in the ROM. If the "read" was successful, the data retrieved subsequently would be passed back to the tester where a checksum or other signature algorithm would be implemented to attempt to verify that the retrieved data was what was expected. Thereafter another "read" could be made at the next ROM address, and its contents verified. To test the entire boot ROM in this manner to verify correctness or validity of the memory contents was thus a long and arduous task.